//
//  BirthdayTimeOffsetViewController.swift
//  FearfulNotification
//
//  Created by 筱鹏 on 2019/6/11.
//  Copyright © 2019 筱鹏. All rights reserved.
//

import UIKit

class BirthdayTimeOffsetViewController: UIViewController {

    let cellReuseId = "BirthdayTimeOffsetTableViewCellReuseId"
    let footerReuseId = "UITableViewHeaderFooterViewReuseId"
    
    let offsetModel = BirthdayAlertOffsetTimeModel()
    var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = Theme.color.background
        
        tableView = UITableView(frame: self.view.bounds, style: .grouped)
        tableView.backgroundColor = Theme.color.background
        tableView.delegate = self;
        tableView.dataSource = self;
        tableView.register(BirthdayTimeOffsetTableViewCell.self, forCellReuseIdentifier: cellReuseId)
        tableView.register(UITableViewHeaderFooterView.self, forHeaderFooterViewReuseIdentifier: footerReuseId)
        view.addSubview(tableView)
    }
    
}

extension BirthdayTimeOffsetViewController: UITableViewDelegate, UITableViewDataSource {
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return offsetModel.obtainOffsetList().count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellReuseId, for: indexPath) as! BirthdayTimeOffsetTableViewCell
        let offsetItem = offsetModel.obtainOffsetList()[indexPath.row]
        
        if offsetModel.currentOffsetTime == offsetItem {
            tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
        }
        
        cell.titleLabel.text = offsetModel.obtain(name: offsetItem)
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let offsetItem = offsetModel.obtainOffsetList()[indexPath.row]
        offsetModel.selectedOffset(offsetItem)
    }
    
    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        let footerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: footerReuseId)
        footerView?.backgroundView?.backgroundColor = Theme.color.background
        footerView?.textLabel?.backgroundColor = Theme.color.background
        footerView?.textLabel?.textColor = Theme.color.navigationTitle
        footerView?.textLabel?.numberOfLines = 0
        footerView?.textLabel?.text = "注意: 此处修改提醒时间，只会在下一次打开提醒时生效，已经打开的提醒不会改变"
        return footerView
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 60
    }
    
}
